from PIL import ImageFont, ImageDraw, Image

if __name__ == "__main__":
    # 图片上的文字
    word = "Hello World"
    # 图片上文字的坐标
    word_position = (60, 430)
    # 文字字体和字号
    font = ImageFont.truetype("font/SourceHanSansCN-Medium.otf", 160)
    # 文字区域的box坐标
    word_box = font.getbbox(word)
    # 渐变颜色效果图片
    font_gradient_file_path = "template/font_gradient_1.jpg"
    # font_gradient_file_path = "template/font_gradient_2.jpg"
    
    # 生成文字区域的alpha图片
    font_gradient_im = Image.open(font_gradient_file_path)
    font_gradient_im = font_gradient_im.resize((word_box[2]-word_box[0], word_box[3]-word_box[1]))
    font_alpha = Image.new('L', font_gradient_im.size)
    font_alpha_d = ImageDraw.Draw(font_alpha)
    font_alpha_d.text((0,0), word , fill='White', anchor="lt", font=font)
    font_gradient_im.putalpha(font_alpha)
    
    # 将带有渐变效果的文字图片覆盖到背景图片上
    background_file_path = "template/background_template.png"
    im = Image.open(background_file_path)
    im.paste(font_gradient_im, word_position, font_gradient_im)
    
    # 保存图片
    im.save("result.png")
    